package icu.feigroup.domain.activity.adapter.repository;

import icu.feigroup.domain.activity.model.entity.UserGroupBuyOrderDetailEntity;
import icu.feigroup.domain.activity.model.valobj.GroupActivityDiscountVO;
import icu.feigroup.domain.activity.model.valobj.SCSkuActivityVO;
import icu.feigroup.domain.activity.model.valobj.SkuVO;
import icu.feigroup.domain.activity.model.valobj.TeamStatisticVO;

import java.util.List;

/**
 * projectName:icu.feigroup.domain.activity.adapter.repository
 *
 * @author 飞
 * @since 2025/2/19 16:33
 * description:活动仓储
 */
public interface IActivityRepository {
    GroupActivityDiscountVO queryGroupActivityDiscountVO(Long activityId);

    SkuVO querySkuByGoodsId(String goodsId);

    SCSkuActivityVO querySCSkuActivityBySCGoodsId(String source, String channel, String goodsId);

    boolean isTagCrowdRange(String tagId, String userId);

    boolean downgradeSwitch();

    boolean cutRange(String userId);

    List<UserGroupBuyOrderDetailEntity> queryInProgressUserGroupBuyOrderDetailListByOwner(Long activityId, String userId, int ownerCount);

    List<UserGroupBuyOrderDetailEntity> queryInProgressUserGroupBuyOrderDetailListByRandom(Long activityId, String userId, int randomCount);

    TeamStatisticVO queryTeamStatisticByActivityId(Long activityId);
}
